package cn.miju.admin.framework.constant;

import cn.hutool.crypto.SecureUtil;

import java.nio.charset.StandardCharsets;

/**
 * <pre>
 * 常量类
 * </pre>
 *
 * @author zhuming
 * @version 1.0.0
 * @since 2023-03-18 17:53
 */
public class AdminConstant {
    /**
     * TOKEN名称
     */
    public static final String TOKEN = "MiJu-Authorization";

    /**
     * JWT全局参数
     */
    public static class JWT {
        /**
         * JWT密钥
         */
        public static final String PRIVATE_KEY = new String(SecureUtil.hmacSha256().digest("miju-admin123456"), StandardCharsets.UTF_8);
        /**
         * 存放在token中的用户信息对应键
         */
        public static final String USER_INFO_KEY = "user_info";
        /**
         * token超时时间;单位：秒
         */
        public static final int TIMEOUT = 3600;
    }

    /**
     * Redis缓存键
     */
    public static class Redis {
        public static final String BASE_KEY = "miju-pay:admin:";
        /**
         * 支付服务缓存键
         */
        public static final String SER_BASE_KEY = "miju-pay:ser:";
        /**
         * 扫码支付二维码缓存键，规则：SCAN_CODE_ORDER_QRCODE + 支付方式 + ":" + 商户订单号
         */
        public static final String SCAN_CODE_PAY_QRCODE = SER_BASE_KEY + "scan_code_pay:qrcode:";
        /**
         * 商户信息缓存键
         * 规则：
         * 1、MERCHANT_INFO + ":" + 商户ID
         * 2、MERCHANT_INFO + ":" + 平台商户号
         */
        public static final String MERCHANT_INFO = SER_BASE_KEY + "merchant_info:";
    }

}
